#ifndef __TASK_H__
#define __TASK_H__
#ifdef __cplusplus
extern "C"
{
#endif

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <pthread.h>
#include <time.h>

// #define TASK_DEBUG
#define TASK_MAX 3

    enum
    {
        TASK_MANAGER_EXIT, // 管理函数退出
        TASK_WORK = 1,     // 线程工作中
        TASK_FINISH,       // 线程工作完成
        TASK_DIEOUT,       // 线程已被回收
    };

    typedef void *(*work_impl)(void *);
    extern uint32_t task_init(work_impl func, void *arg);
    extern void *task_ret(uint32_t id, uint32_t *state);
    extern void task_exit();

#ifdef __cplusplus
}
#endif

#endif